package net.dgg.dggcloud.service.jrcrm.entity.customer;

import net.dgg.dggcloud.core.util.StringUtils;
import net.dgg.dggcloud.service.entity.BaseEntity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;

/**
 * @ClassName: AttrPolicy-客户社保信息
 * @Description: 用于客户社保信息维护
 * @Author: 周潮
 * @Date: 2017年11月03 14:28:28
 * @Version V1.0
 */
@Entity
@Table(name = "cus_attr_social_security")
public class AttrSocialSecurity extends BaseEntity {

    //数据库表名
    public static final String TABLE_NAME = "cus_attr_social_security";

    /**
     * 客户id 
     */
    @Column(name = "customer_id")
    private Long customerId;

    /**
     * 社保所有内容前台展示用
     */
    @Transient
    private String frontShow;

    /**
     * 购买人 
     */
    @Column(name = "purchaser")
    private String purchaser;

    /**
     * 购买人-前台展示用
     */
    @Transient
    private String purchaserShow;

    /**
     * 社保基数 
     */
    @Column(name = "social_security_base")
    private Double socialSecurityBase;

    /**
     * 社保基数-前台展示用
     */
    @Transient
    private String socialSecurityBaseShow;

    /**
     * 已缴费年限
     */
    @Column(name = "social_security_years")
    private Double socialSecurityYears;

    /**
     * 社保年限-前台展示用
     */
    @Transient
    private String socialSecurityYearsShow;

    /**
     * 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     */
    @Column(name = "read_flag")
    private String readFlag;

    /**
     * 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     */
    @Column(name = "source_flag")
    private String sourceFlag;

    /**
     * 扩展字段1 
     */
    @Column(name = "ext1")
    private String ext1;

    /**
     * 扩展字段2 
     */
    @Column(name = "ext2")
    private String ext2;

    /**
     * 扩展字段3 
     */
    @Column(name = "ext3")
    private String ext3;

    /**
     * 扩展字段4 
     */
    @Column(name = "ext4")
    private String ext4;

    /**
     * 扩展字段5 
     */
    @Column(name = "ext5")
    private String ext5;

    /**
     * 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     * @return read_flag 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public String getReadFlag() {
        return readFlag;
    }

    /**
     * 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     * @param readFlag 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public void setReadFlag(String readFlag) {
        this.readFlag = readFlag == null ? null : readFlag.trim();
    }

    /**
     * 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     * @return source_flag 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public String getSourceFlag() {
        return sourceFlag;
    }

    /**
     * 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     * @param sourceFlag 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public void setSourceFlag(String sourceFlag) {
        this.sourceFlag = sourceFlag == null ? null : sourceFlag.trim();
    }

    /**
     * 客户id 
     * @return customer_id 客户id 
     */
    public Long getCustomerId() {
        return customerId;
    }

    /**
     * 客户id 
     * @param customerId 客户id 
     */
    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    /**
     * 购买人 
     * @return purchaser 购买人
     */
    public String getPurchaser() {
        return purchaser;
    }

    /**
     * 购买人 
     * @param purchaser 购买人
     */
    public void setPurchaser(String purchaser) {
        this.purchaser = purchaser;
    }

    /**
     * 社保基数 
     * @return social_security_base 社保基数 
     */
    public Double getSocialSecurityBase() {
        return (null != socialSecurityBase ? socialSecurityBase/100 : null);
    }

    /**
     * 社保基数 
     * @param socialSecurityBase 社保基数 
     */
    public void setSocialSecurityBase(Double socialSecurityBase) {
        this.socialSecurityBase = (null != socialSecurityBase ? socialSecurityBase*100 : null);
    }

    /**
     * 已缴费年限
     * @return social_security_years 已缴费年限
     */
    public Double getSocialSecurityYears() {
        return socialSecurityYears;
    }

    /**
     * 已缴费年限
     * @param socialSecurityYears 社保年限 
     */
    public void setSocialSecurityYears(Double socialSecurityYears) {
        this.socialSecurityYears = socialSecurityYears;
    }

    /**
     * 扩展字段1 
     * @return ext1 扩展字段1 
     */
    public String getExt1() {
        return ext1;
    }

    /**
     * 扩展字段1 
     * @param ext1 扩展字段1 
     */
    public void setExt1(String ext1) {
        this.ext1 = ext1 == null ? null : ext1.trim();
    }

    /**
     * 扩展字段2 
     * @return ext2 扩展字段2 
     */
    public String getExt2() {
        return ext2;
    }

    /**
     * 扩展字段2 
     * @param ext2 扩展字段2 
     */
    public void setExt2(String ext2) {
        this.ext2 = ext2 == null ? null : ext2.trim();
    }

    /**
     * 扩展字段3 
     * @return ext3 扩展字段3 
     */
    public String getExt3() {
        return ext3;
    }

    /**
     * 扩展字段3 
     * @param ext3 扩展字段3 
     */
    public void setExt3(String ext3) {
        this.ext3 = ext3 == null ? null : ext3.trim();
    }

    /**
     * 扩展字段4 
     * @return ext4 扩展字段4 
     */
    public String getExt4() {
        return ext4;
    }

    /**
     * 扩展字段4 
     * @param ext4 扩展字段4 
     */
    public void setExt4(String ext4) {
        this.ext4 = ext4 == null ? null : ext4.trim();
    }

    /**
     * 扩展字段5 
     * @return ext5 扩展字段5 
     */
    public String getExt5() {
        return ext5;
    }

    /**
     * 扩展字段5 
     * @param ext5 扩展字段5 
     */
    public void setExt5(String ext5) {
        this.ext5 = ext5 == null ? null : ext5.trim();
    }

    public void setFrontShow(String frontShow) {
        this.frontShow = frontShow;
    }

    public String getPurchaserShow() {
        return (StringUtils.isNotEmpty(purchaser) ? "购买人【" + purchaser + "】;" : "");
    }

    public void setPurchaserShow(String purchaserShow) {
        this.purchaserShow = purchaserShow;
    }

    public String getSocialSecurityBaseShow() {
        return (null != getSocialSecurityBase() ? "社保基数【" + getSocialSecurityBase() + "元】;" : "");
    }

    public void setSocialSecurityBaseShow(String socialSecurityBaseShow) {
        this.socialSecurityBaseShow = socialSecurityBaseShow;
    }

    public String getSocialSecurityYearsShow() {
        return (null != socialSecurityYears ? "已缴费年限【" + socialSecurityYears + "年】;" : "");
    }

    public void setSocialSecurityYearsShow(String socialSecurityYearsShow) {
        this.socialSecurityYearsShow = socialSecurityYearsShow;
    }

    public String getFrontShow() {
        return "有社保：" + getPurchaserShow() + getSocialSecurityBaseShow() + getSocialSecurityYearsShow();
    }
}